'''tzinfo timezone information for Cuba.'''
from pytz.tzinfo import DstTzInfo
from pytz.tzinfo import memorized_datetime as d
from pytz.tzinfo import memorized_ttinfo as i

class Cuba(DstTzInfo):
    '''Cuba timezone definition. See datetime.tzinfo for details'''

    zone = 'Cuba'

    _utc_transition_times = [
d(1,1,1,0,0,0),
d(1925,7,19,17,29,36),
d(1928,6,10,5,0,0),
d(1928,10,10,4,0,0),
d(1940,6,2,5,0,0),
d(1940,9,1,4,0,0),
d(1941,6,1,5,0,0),
d(1941,9,7,4,0,0),
d(1942,6,7,5,0,0),
d(1942,9,6,4,0,0),
d(1945,6,3,5,0,0),
d(1945,9,2,4,0,0),
d(1946,6,2,5,0,0),
d(1946,9,1,4,0,0),
d(1965,6,1,5,0,0),
d(1965,9,30,4,0,0),
d(1966,5,29,5,0,0),
d(1966,10,2,4,0,0),
d(1967,4,8,5,0,0),
d(1967,9,10,4,0,0),
d(1968,4,14,5,0,0),
d(1968,9,8,4,0,0),
d(1969,4,27,5,0,0),
d(1969,10,26,4,0,0),
d(1970,4,26,5,0,0),
d(1970,10,25,4,0,0),
d(1971,4,25,5,0,0),
d(1971,10,31,4,0,0),
d(1972,4,30,5,0,0),
d(1972,10,8,4,0,0),
d(1973,4,29,5,0,0),
d(1973,10,8,4,0,0),
d(1974,4,28,5,0,0),
d(1974,10,8,4,0,0),
d(1975,4,27,5,0,0),
d(1975,10,26,4,0,0),
d(1976,4,25,5,0,0),
d(1976,10,31,4,0,0),
d(1977,4,24,5,0,0),
d(1977,10,30,4,0,0),
d(1978,5,7,5,0,0),
d(1978,10,8,4,0,0),
d(1979,3,18,5,0,0),
d(1979,10,14,4,0,0),
d(1980,3,16,5,0,0),
d(1980,10,12,4,0,0),
d(1981,5,10,5,0,0),
d(1981,10,11,4,0,0),
d(1982,5,9,5,0,0),
d(1982,10,10,4,0,0),
d(1983,5,8,5,0,0),
d(1983,10,9,4,0,0),
d(1984,5,6,5,0,0),
d(1984,10,14,4,0,0),
d(1985,5,5,5,0,0),
d(1985,10,13,4,0,0),
d(1986,3,16,5,0,0),
d(1986,10,12,4,0,0),
d(1987,3,15,5,0,0),
d(1987,10,11,4,0,0),
d(1988,3,20,5,0,0),
d(1988,10,9,4,0,0),
d(1989,3,19,5,0,0),
d(1989,10,8,4,0,0),
d(1990,4,1,5,0,0),
d(1990,10,14,4,0,0),
d(1991,4,7,5,0,0),
d(1991,10,13,5,0,0),
d(1992,4,5,5,0,0),
d(1992,10,11,5,0,0),
d(1993,4,4,5,0,0),
d(1993,10,10,5,0,0),
d(1994,4,3,5,0,0),
d(1994,10,9,5,0,0),
d(1995,4,2,5,0,0),
d(1995,10,8,5,0,0),
d(1996,4,7,5,0,0),
d(1996,10,6,5,0,0),
d(1997,4,6,5,0,0),
d(1997,10,12,5,0,0),
d(1998,3,29,5,0,0),
d(1998,10,25,5,0,0),
d(1999,3,28,5,0,0),
d(1999,10,31,5,0,0),
d(2000,4,2,5,0,0),
d(2000,10,29,5,0,0),
d(2001,4,1,5,0,0),
d(2001,10,28,5,0,0),
d(2002,4,7,5,0,0),
d(2002,10,27,5,0,0),
d(2003,4,6,5,0,0),
d(2003,10,26,5,0,0),
d(2004,4,4,5,0,0),
d(2006,10,29,5,0,0),
d(2007,4,1,5,0,0),
d(2007,10,28,5,0,0),
d(2008,4,6,5,0,0),
d(2008,10,26,5,0,0),
d(2009,4,5,5,0,0),
d(2009,10,25,5,0,0),
d(2010,4,4,5,0,0),
d(2010,10,31,5,0,0),
d(2011,4,3,5,0,0),
d(2011,10,30,5,0,0),
d(2012,4,1,5,0,0),
d(2012,10,28,5,0,0),
d(2013,4,7,5,0,0),
d(2013,10,27,5,0,0),
d(2014,4,6,5,0,0),
d(2014,10,26,5,0,0),
d(2015,4,5,5,0,0),
d(2015,10,25,5,0,0),
d(2016,4,3,5,0,0),
d(2016,10,30,5,0,0),
d(2017,4,2,5,0,0),
d(2017,10,29,5,0,0),
d(2018,4,1,5,0,0),
d(2018,10,28,5,0,0),
d(2019,4,7,5,0,0),
d(2019,10,27,5,0,0),
d(2020,4,5,5,0,0),
d(2020,10,25,5,0,0),
d(2021,4,4,5,0,0),
d(2021,10,31,5,0,0),
d(2022,4,3,5,0,0),
d(2022,10,30,5,0,0),
d(2023,4,2,5,0,0),
d(2023,10,29,5,0,0),
d(2024,4,7,5,0,0),
d(2024,10,27,5,0,0),
d(2025,4,6,5,0,0),
d(2025,10,26,5,0,0),
d(2026,4,5,5,0,0),
d(2026,10,25,5,0,0),
d(2027,4,4,5,0,0),
d(2027,10,31,5,0,0),
d(2028,4,2,5,0,0),
d(2028,10,29,5,0,0),
d(2029,4,1,5,0,0),
d(2029,10,28,5,0,0),
d(2030,4,7,5,0,0),
d(2030,10,27,5,0,0),
d(2031,4,6,5,0,0),
d(2031,10,26,5,0,0),
d(2032,4,4,5,0,0),
d(2032,10,31,5,0,0),
d(2033,4,3,5,0,0),
d(2033,10,30,5,0,0),
d(2034,4,2,5,0,0),
d(2034,10,29,5,0,0),
d(2035,4,1,5,0,0),
d(2035,10,28,5,0,0),
d(2036,4,6,5,0,0),
d(2036,10,26,5,0,0),
d(2037,4,5,5,0,0),
d(2037,10,25,5,0,0),
        ]

    _transition_info = [
i(-19800,0,'HMT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
i(-14400,3600,'CDT'),
i(-18000,0,'CST'),
        ]

Cuba = Cuba()

